package br.ucb.lab3.Visao;

import java.util.ArrayList;

import br.ucb.lab3.entidades.Atleta;
import br.ucb.lab3.entidades.Treinador;
import br.ucb.lab3.enumeradores.Bicicleta;

public class Apresentacao {

	public static void menu(Treinador treinador) {
		int op = 0;
		do {
			op = Leitura
					.lerInt("Escolha uma opcao\n 1 - Apresentar todos os Atletas\n"
							+ " 2 - Apresentar todos os Atletas que tenha bike do tipo road\n"
							+ " 3 - Apresentar todos os Atletas que tenha bike do tipo time trial\n"
							+ " 4 - Apresentar todos os Atletas em ordem crescente de peso\n"
							+ " 5 - Apresentar todos os Atletas em ordem decrescente de treinamentos\n"
							+ " 6 - Apresentar todos os Atletas em ordem decrescente de peso  \n"
							+ " 7 - Apresentar todos os Atletas que pelo codigo da bike\n"

							+ " 0 - SAIR");

			escolherOpcaoMenu(op, treinador);

		} while (op != 0);

	}

	private static void escolherOpcaoMenu(int op, Treinador treinador) {
		switch (op) {
		case 1:
			apresentarTodos("Todos os atletas ", treinador.getAtletas());
			break;
		case 2:
			apresentarTodos("Todos os atletas quem tenham a bike road",
					treinador.getAtletasTipoDeBike(Bicicleta.ROAD));
			break;
		case 3:
			apresentarTodos("Todos os atletas  quem tenham a bike time trial",
					treinador.getAtletasTipoDeBike(Bicicleta.TIME_TRIAL));
			break;

		case 4:
			apresentarTodos(
					"Todos os atletas  ordenados crescentemente pelo peso",
					treinador.getAtletasOrdenadosPeloPeso(1));
			break;
		case 5:
			apresentarTodos(
					"Todos os atletas  ordenados decrescentemente pelos treinamentos",
					treinador.getAtletasOrdenadosPeloTreinamento(1));
			break;

		case 6:
			apresentarTodos(
					"Todos os atletas cadastrados ordenados decrescentemente pelo peso",
					treinador.getAtletasOrdenadosPeloPeso(2));
			break;
		case 7:
			Bicicleta a =  Bicicleta.findBicicletaByValue(Leitura.lerInt("Informe o codigo da bike "
					+ Bicicleta.ROAD.getValue() + " - " + Bicicleta.ROAD + "\t"
					+ Bicicleta.TIME_TRIAL.getValue() + " - "
					+ Bicicleta.TIME_TRIAL));
			if(a == Bicicleta.ROAD){
				apresentarTodos("Todos os atletas quem tenham a bike road",
						treinador.getAtletasTipoDeBike(Bicicleta.ROAD));

			}else{
				apresentarTodos("Todos os atletas quem tenham a bike time trial",
						treinador.getAtletasTipoDeBike(Bicicleta.TIME_TRIAL));

			}
			break;

		default:
			break;
		}
		// TODO Auto-generated method stub

	}

	private static void apresentarTodos(String string, ArrayList<Atleta> atletas) {
		System.out.println(string);
		for (Atleta atleta : atletas) {
			System.out.println(atleta);
		}
		// TODO Auto-generated method stub

	}

}
